From: kaf24@firebug.cl.cam.ac.uk Date: Mon, 22 May 2006 16:30:25 +0000 (+0100) Subject: [IA64] Work around auto-ballooning changes. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16047^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=9892f9d1aa6a827c0fcefb53d684bc437e261673;p=xen.git [IA64] Work around auto-ballooning changes. Original patch from Kevin Tian at Intel. Signed-off-by: Keir Fraser --- diff --git a/tools/python/xen/xend/XendDomainInfo.py b/tools/python/xen/xend/XendDomainInfo.py index 029c0c969c..8be996c5a2 100644 --- a/tools/python/xen/xend/XendDomainInfo.py +++ b/tools/python/xen/xend/XendDomainInfo.py @@ -29,6 +29,7 @@ import logging import string import time import threading +import os import xen.lowlevel.xc from xen.util import asserts @@ -1264,7 +1265,14 @@ class XendDomainInfo: m = self.image.getDomainMemory(self.info['memory'] * 1024) balloon.free(m) xc.domain_setmaxmem(self.domid, m) - xc.domain_memory_increase_reservation(self.domid, self.info['memory'] * 1024, 0, 0) + + init_reservation = self.info['memory'] * 1024 + if os.uname()[4] == 'ia64': + # Workaround until ia64 properly supports ballooning. + init_reservation = m + + xc.domain_memory_increase_reservation(self.domid, init_reservation, + 0, 0) self.createChannels() diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py index 6d2da07cd6..98c5ec3779 100644 --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -144,10 +144,13 @@ class ImageHandler: def getDomainMemory(self, mem_kb): """@return The memory required, in KiB, by the domain to store the - given amount, also in KiB. This is normally just mem, but if HVM is - supported, keep a little extra free.""" - if 'hvm' in xc.xeninfo()['xen_caps']: - mem_kb += 4*1024; + given amount, also in KiB.""" + if os.uname()[4] != 'ia64': + # A little extra because auto-ballooning is broken w.r.t. HVM + # guests. Also, slack is necessary for live migration since that + # uses shadow page tables. + if 'hvm' in xc.xeninfo()['xen_caps']: + mem_kb += 4*1024; return mem_kb def buildDomain(self):